import java.util.Arrays;
public class Num2Rmb
{
	private String[] hanArr = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
	private String[] unitArr = {"十","百","千","万"};
	private String[] deciArr = {"角","分"};
	/**
	 * 把一个浮点数分解成整数部分和小数部分字符串
	 * @param num 需要被分解的浮点数
	 * @return 分解出来的整数部分和小数部分.第一个数组元素是证书部分,第二个数组元素是小数部分
	 */
	private String[] divide(double num)
	{
		//将一个浮点数强制类型转换为long型即得到它的整数部分
		long zheng = (long)num;
		//浮点数减去整数部分,得到小数部分,小数部分乘以100后再取整数得到2位小数
		long xiao = Math.round((num-zheng)*100);
		//下面用了2种方法把整数转换为字符串
		return new String[]{zheng+"",String.valueOf(xiao)};
	}
	/**
	 * 把一个四位的数字字符串变成汉字字符串
	 * @param numStr 需要被转换的四位数字字符串
	 * @return 四位的数字字符串被转换成汉字字符串
	 */
	private String toHanStr(String numStr)
	{
		String result = "";
		int numLen = numStr.length();
		int zero=0;
		//依次遍历数字字符串的每一位数字
		outer:
		for (int i = 0; i < numLen ; i++ ) {
			//把char型数字转换成int数字,因为它们的ASCII码值恰好相差48
			//因此把char型数字减去48得到int型数字,例如'4'被转换成4s
			int num = numStr.charAt(i)-48;
			//如果不是最后一位数字,而且数字不是零,则需要添加单位(千,百,十)
			System.out.println("未进入判断条件"+i+" "+(numLen-1)+" "+num);
			if (i !=numLen-1&&num != 0) {
				System.out.println(i+" "+"numLen:"+numLen+" num: "+num);
				result += hanArr[num] + unitArr[numLen - 2 - i];
				zero=0;
			}else if (i !=numLen-1&&i==0) {
				System.out.println("高位为零");
				zero++;
				continue;
			}
			//如果是最后一位数字,且数字是零
			//否则不要添加单位
			//如果不是最后一位数字,且数字为零,zero为0
			else if(i !=numLen-1&&num==0&&zero==0) 
			{
				System.out.println("if1 i==(numLen-1): "+(i==(numLen-1))+";num==0: "+(num==0)+";zero: "+zero);
				result += hanArr[num];
				zero++;
			}
			//如果不是最后一位数字,且数字为零,zero不为0,或者说连续两个零,跳出语句
			else if (i !=numLen-1&&num==0&&zero!=0) {
				System.out.println("if2 i==(numLen-1): "+(i==(numLen-1))+";num==0: "+(num==0)+";zero: "+zero);
				continue;
			}
			//如果是最后一位数字,且数字为零,zero为0,或者说连续两个零,跳出语句
			else if (i==(numLen-1)&&num==0&&zero==0) {

				System.out.println("if3 i==(numLen-1): "+(i==(numLen-1))+";num==0: "+(num==0)+";zero: "+zero);
				//result += hanArr[num];
				continue;
			}
			System.out.println("已经走出if语句");
		}
		return result;
	}
	public static void main(String[] args) {
		Num2Rmb nr = new Num2Rmb();
		//测试把一个浮点数分解成整数部分和小数部分
		System.out.println(Arrays.toString(nr.divide(235711125.123)));
		//测试把一个四位的数字字符串编程汉字字符串
		System.out.println(nr.toHanStr("06090"));
	}
}